package com.atguigu.jxc.service;

import com.atguigu.jxc.domain.ServiceVO;
import com.atguigu.jxc.entity.Goods;

import java.util.Map;

/**
 * @author lfh
 * @version 1.0
 * @date 2021/5/13 10:06
 */
public interface GoodsService {

    // 查询当前库存（根据商品类别、商品编码或名称搜索）
    Map<String, Object> listInventory(Integer page, Integer rows, String codeOrName, Integer goodsTypeId);

    // 根据分类、名称查询所有商品信息
    Map<String, Object> list(Integer page, Integer rows, String goodsName, Integer goodsTypeId);

    // 保存
    void saveGoods(Goods goods);
    // 修改
    void updateGoods(Goods goods);
    // 无库存商品列表展示（可以根据商品名称或编码查询）
    Map<String, Object> getNoInventoryQuantity(Integer page, Integer rows, String nameOrCode);

    // 有库存商品列表展示
    Map<String, Object> getHasInventoryQuantity(Integer page, Integer rows, String nameOrCode);
    // 添加库存、修改数量或成本价
    void saveStock(Integer goodsId, Integer inventoryQuantity, double purchasingPrice);
    // 删除库存（要判断商品状态 入库、有进货和销售单据的不能删除）
    void deleteStock(Integer goodsId);


    ServiceVO getCode();



    // 删除 商品 商品状态不可删除
//    void deleteGoods(Integer goodsId);
    ServiceVO deleteGoods(Integer goodsId);

    // 查询所有 当前库存量 小于 库存下限的商品信息
    Map<String, Object> listAlarm();
}
